Many font generating systems exist for generating Asian character fonts (“Asian fonts”). An Asian font is composed of a large number of ideographs that represent the characters in the Asian language. Asian languages may include thousands of characters. For example, the Chinese language includes over twenty-thousand distinct characters.
One conventional computer technique for generating character patterns in an Asian font uses font outlines. This system is described in “PostScript Language Tutorial and Cookbook” by Adobe Systems, Inc. (Addison-Wesley Publishing, 1985). In this method, the outline of a character pattern is stored as a collection of straight lines and curves. There are some disadvantages associated with this technique. First, because different font outlines must be defined and stored for tens of thousands of different characters, the memory requirement is relatively high. Second, the font outlines that are stored in high resolution are suited for display only in high resolution; they are not suited for high-quality display in relatively low resolution.
Another method of generating an Asian font uses stroke-based character pattern data, wherein each stroke within a character is separately defined. A character typically consists of multiple strokes that overlap or intersect with each other. The stroke-based character data consist of key points, width values, feature points, and curve ratios, which together define the outline of each stroke. The construction and rendering of the stroke-based character data are described in detail in U.S. Pat. Nos. 5,852,448, 6,151,032, and 6,157,390, which are explicitly incorporated by reference herein. The stroke-based technique is suited for reducing the memory requirements for fonts. Further, the stroke-based character font can be adjustably displayed, always in high quality, in both high resolution and low resolution.
Yet another method of generating an Asian font uses glyph-based character pattern data, wherein each glyph within a character is separately defined. An Asian character typically consists of one or more glyphs, each of which in turn consists of one or more strokes. For example, several strokes in a character that intersect or overlap with each other often create a complicated overall geometric shape, which is a glyph. In the glyph-based technique, each glyph is defined in terms of key points, width values, feature points, and curve ratios, as in the stroke-based technique described above. The construction and rendering of the glyph-based character pattern data are described in detail in U.S. Pat. Nos. 6,501,475 and 6,661,417, which are explicitly incorporated by reference herein.
With the advent of the panel display technology, text can now be displayed as a gray level image on the screen of a cellular phone, PDA, and other electronic devices. Previously, characters were rendered on a binary-image dot matrix screen, which displayed each pixel as either black or white. On the other hand, a gray level screen is capable of displaying each pixel at any gray level (or gray value) ranging from black (0) through white (255). Rendering those characters defined for a binary-image screen on a gray level screen often causes severe degradation of the resulting text image. This is particularly true with Asian characters, which tend to have relatively more complicated overall geometric shapes. For example, FIG. 1D illustrates a Chinese character 9. FIG. 1E illustrates a typical method of rendering a portion 12 of the character 9 on a gray level screen. FIG. 1E illustrates four pixels 16a–16d, on which the portion 12 of the character 9 falls. Referring to the pixel 16b, an area A1 occupied by the character 9 and an area A2 unoccupied by the character 9 are calculated. Then, the gray value for the pixel 16b can be calculated as follows:Gray Value=(A1×black+A2×white)/(A1+A2)  (Equation 1)
In the present description, a calculation to obtain a gray value for a particular pixel, such as Equation 1 above, is termed a “gray value calculation.” FIGS. 1A and 1B illustrate the application of Equation 1 to render a portion 14 of a character 10, including strokes 20 and 22, on a gray level screen. FIG. 1B depicts sixteen (4×4) pixels in four rows 18a–18d, on which the portion 14 of the character including the strokes 20 and 22 falls. As illustrated, the stroke 20 occupies the lower 50% of the pixel row 18a and the upper 50% of the adjacent pixel row 18b. Likewise, the stroke 22 occupies the lower 50% of the pixel row 18c and the upper 50% of the adjacent pixel row 18d. Accordingly, the gray value for each of the four pixel rows 18a–18d is calculated to be the same value as follows:Gray Value=0.5×black+0.5×white  (Equation 2)
Consequently, the entire pixel rows 18a–18d will be painted in the same shade of gray, as shown in 24, where the strokes 20 and 22 merge together and are unrecognizable. FIG. 1C illustrates a severely degraded version of the character 10′ corresponding to the character 10 of FIG. 1A, which was rendered on a gray level screen according to the conventional method. As illustrated, the horizontally extending strokes in the portion 14 of the original character 10 have merged together to render the resulting character almost unrecognizable.
A need exists for a system, method, and computer-readable medium for generating fonts that will be displayed in high quality not only on a binary-image dot matrix screen but also on a gray level screen.